/* 
 * File:   Visualization.h
 * Author: cjjonker
 *
 * Created on 20 december 2012, 15:03
 */

#ifndef VISUALIZATION_H
#define	VISUALIZATION_H

#include <vector>
#include "Simulation.h"
#include "Glyphs.h"
#include "Smoke.h"
#include "Visualizer.h"
#include "ScalarDataset.h"
#include "Streamlines.h"

class Visualization {

    Glyphs d_glyphs;
    Smoke d_smoke;
    Streamlines d_streamlines;
       
    Simulation *d_simulation;
    
    std::vector<Visualizer*> d_visualizers;    
    
public:
    
    
    Visualization();
    
    void setSimulation(Simulation* sim);
    void visualize(int w, int h);
    std::vector<Visualizer*> getVisualizers();
    void setSeed(float x, float y);
    
    
private:
    void initVisualizers();

};


inline std::vector<Visualizer*> Visualization::getVisualizers() { return d_visualizers; }

inline void Visualization::setSeed(float x, float y)
{
    d_streamlines.addSeed(x, y);
}

#endif	/* VISUALIZATION_H */

